﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace SpaceInvaders_LeonardoCamelo
{
    class Stage2 : BaseStage //Classe de fase 1, deriva de BaseStage.
    {
        //Metodo construtor da classe.
        public Stage2(Game game) : base(game)
        {
            //Carregamos o background.
            this.stageBG = new Background(game.Content.Load<Texture2D>(@"Imagens\fundodeitado2"), new Rectangle(0, 0, WIDTH, HEIGHT));
            //Definimos quantos inimigos terão na fase.
            this.enemyNumber = 10;
            //limpamos a lista de inimigos.
            this.enemyList.Clear();
            //Adicionamos inimigos.
            //priemira linha
            this.AddEnemy(new Vector2(25, 100));
            this.AddEnemy(new Vector2(175, 100));
            this.AddEnemy(new Vector2(325, 100));
            this.AddEnemy(new Vector2(475, 100));
            this.AddEnemy(new Vector2(625, 100));
            //segunda linha
            this.AddEnemy(new Vector2(25, 200));
            this.AddEnemy(new Vector2(175, 200));
            this.AddEnemy(new Vector2(325, 200));
            this.AddEnemy(new Vector2(475, 200));
            this.AddEnemy(new Vector2(625, 200));
        }

        //Metodo usado para atualizações no objeto.
        public override void Update(GameTime gameTime)
        {
            if (enemyList.Count == 0)
            {
                //Mude para a cena Stage3.
                SceneManager.ChangeScene(Game, GameState.Stage3);
            }

            base.Update(gameTime);
        }

        //Metodo usado para desenhar.
        public override void Draw(GameTime gameTime)
        {
            //Iniciamos a ferramenta de desenho.
            spriteBatch.Begin();
            //Desenhamos o background.
            stageBG.Draw(spriteBatch);
            //Desenhamos os inimigos.
            foreach (Enemy n in enemyList)
                n.Draw(spriteBatch);
            //Finalizamos a ferramenta de desenho.
            spriteBatch.End();


            base.Draw(gameTime);
        }
    }
}
